如果需要,学生端也可以作为示范案例,将屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生即可查看。4. 横竖屏适配在Android设备上,横竖屏切换时需要考虑屏幕宽高的变化,确保推拉流两端可以自动适配。编码器需要重启以适应新的分辨率设置,拉流端也需要能够自动播放适应变化后的视频流。3. 智慧教室方案选型本文以大牛直播SDK的Android的SmartServicePublisherV2的同屏demo为例,Android采集计时器,编码打包分别启动RTMP推送和轻量级RTSP服务,Windows 前后摄像头实时切换;支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;支持RTMP推送 live|record模式设置;支持前置摄像头镜像设置;支持软编码、特定机型硬编码;支持横屏、竖屏推送 智慧教室RTMP技术方案通过利用RTMP协议的实时性和低延迟特性,结合适当的组网、服务器部署、编码转码、横竖屏适配、补帧策略以及网络稳定性保障措施,为智慧教室场景下的实时授课、屏幕共享、互动教学等功能提供了强有力的技术支持
技术背景在写这篇文章之前,实际上几年之前,我们就有非常稳定的无纸化同屏的模块,本文借demo更新,算是做个新的总结,废话不多说,先看图,本文以Android平台屏幕实时采集推送,Windows播放为例 技术考量指标本文以大牛直播SDK前些年实现的Android同屏采集推送为例,大概介绍下一些技术考量指标。1. 轻量级RTSP服务还是RTMP? 我们在做无纸化同屏的时候,问的最多的是,能不能不要自建服务,直接主讲人或教师端,直接启动轻量级RTSP服务,其他终端拉流,如果是小并发,比如5人内的小范围的同屏,Windows平台走轻量级RTSP无可厚非 Android横竖屏自动适配Android平台,如果是pad采集,基本就是横屏采集,如果手机端,需要确保横竖屏模式下都可以正常采集。4. 同屏过程中,重点画面可以快照吗?当然可以,我们同屏采集端,支持采集编码png或jpg格式输出。
单播不再赘述,这里重点介绍下我们的组播技术方案: 组播解决的主要痛点是服务器部署和带宽占用问题,一般来说,内网电子教室/无纸化/实时同屏场景用RTMP推送+RTMP服务器,然后其他端从服务器拉取RTMP 通过组播技术方案,只要网络设备支持组播组网,轻松实现多并发的同屏/摄像头直播场景。 但是,组播的劣势在于,高码率的无线网络环境体验很差,也就是说,如果是Windows或者Android平台推送,Android无线PAD播放,真正好用的,还是RTMP推拉流技术解决方案。 经长时间测试,毫秒级延迟,完全满足内网同屏技术指标。 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6.
很多开发者在做Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)时,总感觉接口不够用,以大牛直播SDK为例 (Github) 我们来总结下,我们常规需要支持的编码前音视频数据有哪些类型: * LANDSCAPE = 2; //横屏 home键在右边的情况 * LANDSCAPE_LEFT_HOME_KEY = 3; //横屏 home键在左边的情况 支持RGBA数据接入(支持裁剪后数据接入,主要用于同屏场景): /** * Set live video data(no encoded data). 支持RGB565数据接入(主要用于同屏场景): /** * Set live video data(no encoded data). 支持camera数据接入(主要用于camera2接口对接): /* * 专门为android.media.Image的android.graphics.ImageFormat.YUV_420
技术背景我们在做无纸化同屏的时候,好多开发者采集到屏幕、麦克风|扬声器数据,除了需要推RTMP出去,或者启动个轻量级RTSP服务,对外提供个拉流的RTSP URL,别的终端过来拉流(小并发场景),还有个技术需求 技术实现实际上,Android同屏,需要录像的话,和采集摄像头数据录像一样,只是数据源不同而已,鉴于不管什么格式的video数据,我们都是投递到模块底层做转换编码,所以本质上没啥差别。 StopRecorder();stream_publisher_.try_release();test_and_disable_post_audio();}};post_or_execute(r);}总结Android 平台无纸化同屏,如果需要本地录像的话,实现难度不大,只要复用之前开发的录像模块的就可以,对我们来说,同屏采集这块,只是数据源不同而已,如果是自采集的其他数据,我们一样可以编码录像。 以上是Android同屏录像设计,感兴趣的开发者,可以跟我单独沟通交流。
背景 本文主要讲的是基于Android平台实现RTMP的技术方案设计,基础架构图如下: 组网注意事项 1. 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6. Android端对接 推送分辨率如何设定或缩放? 横竖屏状态下,采集的屏幕宽高不一样,如果横竖屏切换,这个时候,需要考虑到横竖屏适配问题,确保比如竖屏状态下,切换到横屏时,推拉流两端可以自动适配,横竖屏自动适配,编码器需要重启,拉流端,需要能自动适配宽高变化 width, int height, int clipedLeft, int clipedTop, int clipedWidth, int clipedHeight); 文字、图片水印 好多场景下,同屏者会把公司
display this help and exit [root@56-201 ~]# 这里不准备演示 scriptreplay 的使用方法,其实也很简单 这里接合重定向实现文本终端的同屏 qlen 1000 link/ether 52:54:00:16:5e:11 brd ff:ff:ff:ff:ff:ff [root@56-201 ~]# ---- 目标 通过重定向实现文本终端同屏 通过跟踪日志实现文本终端同屏 ---- 创建日志 [root@56-201 jail]# ll total 0 drwxr-xr-x. 2 root root 30 7月 30 19:04 bin bin lib64 [root@56-201 jail]# 之后从客户端 terminal 中看到的就是服务端中的内容,这个方法客户端登录后要主动使用 tail 命令,服务端不用做什么别的操作 两种同屏效果
RK3588 芯片内置了 VOP 控制器,支持四路视频同显或异显,可有效提高行业定制的拓展性。 本章节我们将介绍在 RK3588 的Android12 系统上实现多屏显示。 1.1 Android 多屏同显iTOP-RK3588 开发板支持以下屏幕迅为 MIPI 7 寸屏幕标准 HDMI 屏幕(通过 HDMI 线连接)迅为 LVDS 7 寸屏幕迅为 LVDS 10.1 寸 默认打开对应的宏定义为多屏同显。RK3588 VP 和各显示接口的连接关系如下图所示。 如果同样的屏幕情况下,应用支持异显,那么副屏会显示实际正常的分辨率。所以如果要支持双屏或者多屏同显并要求显示正常,双屏或者多屏的屏幕的分辨率比要一致。
投屏技术已经被大量用在身边的产品, 比如电视投屏, 投影仪, 视频会议产品中. 在iOS平台外的其他平台中都已经有非常成熟的标准和实现. 这样可以将小屏映射到大屏,可以无线音乐,可以图片分享等等. 但是Airplay属于苹果私有协议方案,设备间的协商与传输过程都进行了加密处理,并不能用于其他平台中。 这样可以方便实现跨平台的多屏共享。 Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 1, 设备广播与发现 2, 信息交互与能力协商 3, 音视频数据接收与解扰 设备广播与发现: Airplay设备间的广播与发现通过 我们对Airplay相关协议的逆向工程已经封装成了跨平台的类库和框架, 支持windows/Mac/Android/iOS/linux, 在自己内部产品中使用已经非常稳定, 如果有需要可以联系我们.
投屏技术已经被大量用在身边的产品,比如电视投屏,投影仪,视频会议产品中。 在iOS平台外的其他平台中都已经有非常成熟的标准和实现。 这样可以方便实现跨平台的多屏共享。 这中投屏方案使用了iOS原生的投屏能力,并且是完全的软件方案,非常方便进行集成和使用。 Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 设备广播与发现 信息交互与能力协商 音视频数据接收与解扰 设备广播与发现 Airplay设备间的广播与发现通过Bonjour协议进行 我们对Airplay相关协议的逆向工程已经封装成了跨平台的类库和框架, 支持windows/Mac/Android/iOS/linux, 在自己内部产品中使用已经非常稳定, 如果有需要可以联系我们.
技术背景好多开发者,希望我们能系统的介绍下无纸化同屏的原理和集成步骤,以Android平台为例,无纸化同屏将Android设备上的屏幕内容实时投射到另一个显示设备(如Windows终端、国产化操作系统或另一台 技术考量指标本文以大牛直播SDK Android同屏采集推送为例,介绍下我们前些年做Android同屏采集推送的时候,一些注意点:声明所需权限:在Android应用的AndroidManifest.xml 如H.264、H.265等,以及设置合适的分辨率、帧率、码率,以适应不同的网络环境和接收设备的性能;流媒体协议:为了将编码后的视频流实时传输到接收端,Android无纸化同屏技术通常采用RTMP推流模式或轻量级 技术实现本文以大牛直播SDK的Android的SmartServicePublisherV2的同屏demo为例,Android采集计时器,编码打包分别启动RTMP推送和轻量级RTSP服务,Windows 总结以上是Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器,整体部署
想要做图片的分享功能,首先就需要抓屏,将当前屏幕保存为一个图片文件。 下面就是一个将当前的Activity直接保存为一个图片文件的类库,可以直接使用。需要的,直接拿来主义就好了。 package com.gaolei.framework.android.util; import java.io.File; import java.io.FileNotFoundException ; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Rect; import android.view.View; public
现在,市面上的屏幕尺寸和全面屏方案五花八门。这里我使用了小米的图来说明: ? 上述两种屏幕都可以统称为刘海屏,不过对于右侧较小的刘海,业界一般称为水滴屏或美人尖。 为便于说明,后文提到的「刘海屏」「刘海区」都同时指代上图两种屏幕。 刘海屏、水滴屏全面屏适配细节 当我们在谈屏幕适配时,我们具体谈什么呢? 声明最大长宽比 以前的普通屏长宽比为16:9,全面屏手机的屏幕长宽比增大了很多,如果不适配的话就会类似下面这样: ? 适配刘海屏 Android9.0适配 Android P(9.0)开始,官方开始提供了官方的挖孔屏适配API,具体可以参考Support display cutouts。 生效,意味着该应用的所有页面,系统都不会做竖屏场景的特殊下移或者是横屏场景的右移特殊处理。
技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒介 URL,简单来说,设计架构图如下: daniulive_relaysdk_20200130.png 基于上诉诉求,我们以大牛直播SDK (官方)Android端的 SmartRelayDemoV2 工程为例 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP|RTMP数据流到RTMP服务器的转发; 3. 整体网络状态反馈:考虑到有些摄像头可能会临时或异常关闭,RTMP服务器亦是,可以通过推拉流的event回调状态,查看那整体网络情况,如此界定:是拉不到流,还是推不到RTMP服务器; 10. 先上图 android_relay.jpg Demo主要实现了以下几个功能点展示: 1. 设置RTMP、RTSP拉流的URL; 2. 设置转推RTMP的URL; 3.
使用无线投屏技术原理:无线投屏技术允许设备通过Wi-Fi网络或其他无线连接方式,将屏幕内容实时投射到另一台设备上。 在需要投影的设备上打开“设置”或“投影”选项,选择“无线投屏”或“屏幕镜像”等类似功能。在手机上搜索并连接另一台设备,即可实现屏幕内容的实时共享。 注意:该方法对于电脑系统的要求较高,且不能进行跨系统投屏。5. 使用成熟的屏幕采集软件使用大牛直播SDK的RTMP直播推送模块,或者轻量级RTSP服务模块,本文以RTMP直播推送为了。 大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前 无论是无线投屏、第三方应用、HDMI线连接还是即时通讯软件的屏幕共享功能,都能轻松实现屏幕内容的实时共享。
> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ray.linkit 要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向(给每个activity加上android:configChanges=”keyboardHidden |orientation”属性),并根据Activity的重写onConfigurationChanged(Configuration newConfig)方法来控制,这样在转屏时就不会重启activity R.layout.file_list_landscape); }else{ //竖向 setContentView(R.layout.file_list); } 在模拟器中,要使程序转屏可以使用快捷键 当然在用命令行启动模拟器时可以直接使用参数emulator.exe -skin HVGA-L来启动横屏的程序。
推流SDK,跨平台,支持Windows、Android、iOS平台,特别针对如在线教育、会议同屏等传统场景开发,以SDK开发包的形式提供,功能强大,可扩展性强,如可支持录像、快照、外部原始YUV/RGB 推流]超低延时的RTMP协议直播推流SDK(Windows/Android/iOS支持RTMP扩展H.265推送); [视频格式]Windows/Android平台支持H.264/H.265编码(Android ,Android/iOS平台支持H.265硬编码; [横竖屏推流]Android/iOS平台支持支持横屏、竖屏推流; [多分辨率支持]支持摄像头或屏幕多种分辨率设置; [Windows推屏]Windows ; [RTMP推送模式]支持RTMP推送 live|record模式设置(需服务器支持); [镜像]Android/iOS平台支持前置摄像头实时镜像功能; [前后摄像头实时切换]Android/iOS 如果是传统行业,比如智慧教室、无纸化会议同屏等,需要结合自己的业务,进行二次开发,而且对延迟、稳定性、还有可扩展性要求很高的话,可以考虑用SmartPublisher这种基于接口定制的SDK降低开发周期
,我把竖屏的文件夹名字添加了land标记 输入一次w和h 输出两个文件夹values-h*w(竖屏专用)和values-land-w*h(横屏),每次只要选一个就行 3.把values文件夹copy 进android工程 接下来我用虚拟机演示一下 (1)横屏 ? 由于这是横屏,所以只需要values-land-2560x1504这个文件夹 (2)竖屏 ctrl+F11切换竖屏 ? 布局文件如下 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http android:layout_width="@dimen/x160" android:layout_height="@dimen/y240" android
android的实现非常简单,使用Handler对象的postDelayed方法就可以实现。在这个方法里传递一个Runnable对象和一个延迟的时间。
一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页 文章收录专栏:RK3568_Android11 _驱动开发,此专栏为RK3568开发板Android11系统开发,学习记录 欢迎大家点赞 收藏 ⭐ 加关注哦! 永不息屏 \android11\device\rockchip\rk356x\overlay\frameworks\base\packages\SettingsProvider\res\values\defaults.xml 在这个文件中修改 关闭锁屏 \android11\frameworks\base\packages\SettingsProvider\res\values\defaults.xml 在这个文件下修改